﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace checc_baseTools
{
    public class CheccConeSlopeData
    {
        private static volatile CheccConeSlopeData instance = null;
        private static object lockHelper = new object();
        //铺砌
        public double thickness_pave = 0.4;                                       //铺砌厚度(m) 
        public double paveOffset_L = 2;                                           //左洞铺砌外延(m)
        public double paveOffset_R = 2;                                           //左洞铺砌外延(m)
        public double paveZ_L = 0.3;                                              //左洞洞口铺砌基点高程(高于锥坡底面的高度)
        public double paveZ_R = 0.3;                                              //右洞洞口铺砌基点高程(高于锥坡底面的高度)
        //截水墙
        public double H_CutoffWall = 0.8;                                         //截水墙高（不含铺砌高度）(m)
        public double W_CutoffWall = 0.4;                                         //截水墙厚(m)
        //两侧锥坡净距
        public double distance_L = 6;                                             //左洞两侧八字墙最高截面处沿桩号的净距
        public double distance_R = 6;                                             //右洞两侧八字墙最高截面处沿桩号的净距
        //锥坡构造参数
        public double slope_ConeAxis = 1;                                         //顺路线方向锥坡坡度(1:n)
        public double slope_ConeBxis = 1.5;                                       //路基边坡方向锥坡坡度(1:n)
        public double disToCulvert = 0.5;                                         //在XY平面圆锥到涵洞内缘的净距
        public double R_ConeTop = 0;                                              //锥坡顶半径(m)
        public double H_Cone_L = 5;                                               //锥坡高度(m)
        public double H_Cone_R = 5;                                               //锥坡高度(m)
        //模型名
        public string ModelName = "洞口";
        ////锥坡图层 样色
        //public string LevelName = "锥坡";
        //public SolidColor solidColor = SolidColor.紫色;
        //public SolidLineStyle solidLineStyle = SolidLineStyle.连续线;
        //public string materialName = "Grass Areas";
        ////铺砌图层 样色
        //public string paveLevelName = "铺砌";
        //public SolidColor paveSolidColor = SolidColor.红色;
        //public SolidLineStyle paveSolidLineStyle = SolidLineStyle.连续线;
        ////截水墙图层 样色
        //public string cutoffWallLevelName = "截水墙";
        //public SolidColor cutoffWallSolidColor = SolidColor.莹黄;
        //public SolidLineStyle cutoffWallSolidLineStyle = SolidLineStyle.连续线;
        //重要数据写入dataBlock
        public ushort steelDataBlockID { get; } = 20211;                          //数据写入八字墙元素, ID号保持不变
        /*写入dataBlock数据格式举例:

        */
        public static CheccConeSlopeData Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (lockHelper)
                    {
                        if (instance == null)
                        {
                            instance = new CheccConeSlopeData();
                        }
                    }
                }
                return instance;
            }
        }
    }
}
